package com.ctshk.rpc.booking.req.unsubscribe.save;


import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 供应商退订
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-03-25
 */
@Data
@ApiModel(value = "SupplierUnsubscribeSaveReq对象", description = "供应商退订")
public class SupplierUnsubscribeSaveReq implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    private Long id;

    @NotNull(message = "退订类型不能为空(1:API产品,2:人工录入,3:外挂单)")
    @ApiModelProperty(value = "退订类型,枚举ProductType")
    private Integer cancellationType;

    @NotNull(message = "供应商id不能为空")
    @ApiModelProperty(value = "供应商id")
    private Long supplierId;

    @NotBlank(message = "供应商名称不能为空")
    @ApiModelProperty(value = "供应商名称")
    private String supplierName;

    @NotNull(message = "供应商预订单id不能为空")
    @ApiModelProperty(value = "供应商预订单id")
    private Long supplierOrderId;

//    @NotBlank(message = "供应商单号不能为空")
    @ApiModelProperty(value = "供应商单号")
    private String supplierOrderNumber;

    @NotNull(message = "预订类型id不能为空")
    @ApiModelProperty(value = "预订类型id,基础主数据:供应商预订类型")
    private Long reserveTypeId;

    @NotBlank(message = "预订类型不能为空")
    @ApiModelProperty(value = "预订类型")
    private String reserveTypeName;

    @NotNull(message = "币种ID不能为空")
    @ApiModelProperty(value = "币种ID")
    private Long currencyId;

    @NotBlank(message = "币种不能为空")
    @ApiModelProperty(value = "币种")
    private String currency;

    @ApiModelProperty(value = "团号")
    private String groupNumber;

    @NotBlank(message = "产品编号不能为空")
    @ApiModelProperty(value = "产品编号")
    private String productNumber;

    @NotBlank(message = "资源信息不能为空")
    @ApiModelProperty(value = "资源信息")
    private String resourceInformation;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @Valid
    @NotEmpty(message = "退订详情列表不能为空")
    @ApiModelProperty("退订详情列表")
    private List<SupplierUnsubscribeDetailsSaveReq> supplierUnsubscribeDetailsSaveReqList;

    @Valid
    @ApiModelProperty("附件列表(至多上传5个)")
    private List<SupplierUnsubscribeFileSaveReq> supplierUnsubscribeFileSaveReqList;


}
